#!/bin/bash
###############################################################################
# @用例ID: 20230528-144220-654040290
# @用例名称: binutils_test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件:系统正常运行，且已安装 binutils
    assert_true yum install -y binutils

    # @预置条件:
    return 0
}

do_test() {
    msg "this is do_test"

    # @测试步骤:1 使用 nm 命令查看目标文件的符号表
    # @预期结果:1 确保成功显示目标文件的符号表信息
    assert_true nm /usr/bin/ls

    # @测试步骤:2 使用 readelf 命令查看目标文件的节头信息
    # @预期结果:2 确保成功显示目标文件的节头信息
    assert_true readelf -h /usr/bin/ls

    # @测试步骤:3 使用 objdump 命令反汇编目标文件
    # @预期结果:3 确保成功反汇编目标文件，并显示反汇编结果
    assert_true objdump -d /usr/bin/ls

    # @测试步骤:4 使用 strings 命令查找目标文件中的可打印字符串
    # @预期结果:4 确保成功查找目标文件中的可打印字符串，并显示查找结果
    assert_true strings /usr/bin/ls

    return 0
}




tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
